#pragma once

#include <vector>

#include <GL\glew.h>
#include <GL\freeglut.h>

#include <glm\glm.hpp>
#include <glm/gtc/matrix_transform.hpp>


class Columna {
public:
	// Las dimensiones en cantidad de vertices
	Columna(const float radio, const unsigned int segmentos, const float altura);
	~Columna();

	void dibujar(const glm::mat4 &viewMatrix, const glm::mat4 &projectionMatrix, const glm::vec4 &light_position, const glm::vec3 &light_intensity, const glm::mat4 &model, GLuint shaderProgramID) const;

private:
	const float m_altura_piso;

    // Cilinder vertex e index buffer
    GLfloat* cilinder_vertex_buffer;
	GLfloat* cilinder_normal_buffer;
    GLuint* cilinder_index_buffer;
	unsigned int cilinder_vertex_buffer_size;
    unsigned int cilinder_normal_buffer_size;
    unsigned int cilinder_index_buffer_size;
    std::vector<float> cv_vertex_buffer;
    std::vector<unsigned int> cv_index_buffer;
	std::vector<float> cv_normal_buffer;

};
